package com.yuri.news.jpa;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import com.yuri.news.entity.Privilege;

/**
 * 权限jpa
 * @author Yuri
 */
public interface PrivilegeRepository extends JpaRepository<Privilege, Long>, JpaSpecificationExecutor<Privilege> {
	
	/**
	 * 根据(角色/用户/部门)id查询该角色的权限
	 * @param id
	 * @return
	 */
	List<Privilege> findByPrivilegeAccessAndPrivilegeAccessValue(String access, Long id);
	/**
	 * 根据是否可用 查询权限
	 * @param isAva
	 * @return
	 */
	List<Privilege> findByIsAvailable(Boolean isAva);
	/**
	 * 根据是否可用 查询权限(分页)
	 * @param isAva		是否可用
	 * @param page 		分页信息
	 * @return
	 */
	Page<Privilege> findByIsAvailable(Boolean isAva, Pageable page);
	
	Privilege findByPrivilegeAccessAndPrivilegeAccessValueAndPrivilegeMasterAndPrivilegeMasterValue(
			String privilegeAccess, Long privilegeAccessValue,
			String privilegeMaster, Long privilegeMasterValue);
}
